/*
 * TacticaGobo.java
 *
 * Created on 29 de marzo de 2007, 20:21
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package futbol.tacticas.concursantes2007.GoboTeam;

import futbol.tacticas.concursantes.Tactica;

import java.awt.*;
import java.util.Vector;
import futbol.tacticas.*;
import futbol.*;
/**
 *
 * @author mrGoBo
 */
public class TacticaGobo implements Tactica{
    
    private int nValores[][]={
        
        {-153,0,5},  // Jugador 1[0]
        {-30,0,4},    // Jugador 2[1]
        {-100,30,6},  // Jugador 3[2]
        {-100,-30,6},  // Jugador 4[3]
        {-70,65,7},  // Jugador 5[4]
        {-70,-65,7},  // Jugador 6[5]
        {55,-30,7},  // Jugador 7[6]
        {55,30,7},  // Jugador 8[7]
        {65,-70,7},  // Jugador 9[8]
        {65,70,7},  // Jugador 10[9]
        {45,0,7}  // Jugador 11[10]
    };
    
    public Color getColor1() {
        return Color.black;
    }

    public Color getColor2() {
        return Color.black;
    }

    public Color getColorNumero() {
        return Color.green;
    }

    public String getNombre() {
        return "Gobo Team";
    }

    public int getXInicial(int n) {
        return nValores[n][0];
    }

    public int getYInicial(int n) {
        return nValores[n][1];
    }

    public int getFuerza(int n) {
        return nValores[n][2];
    }
    
    
    
    
 public Vector<Comando> getComandos(SituacionJugadores sj) {
        Vector<Comando> com=new Vector();
    
        Point bola=sj.getBola();
        Point jugadores[]=sj.getMisJugadores();
        Point contrarios[]=sj.getContrario();    
            
                
        //Posicionamiento
        for (int n=0;n<11;n++)
            com.add(new ComandoIrA(n,nValores[n][0],nValores[n][1]));
        
      
        double portX=nValores[0][0];
            
        int y=(int)(bola.getY());
        if (y<-30) y=-28;
        else if (y>30) y=28;
        if (bola.getX()>-20)
        com.add(new ComandoIrA(0,-120, y));
        else 
        com.add(new ComandoIrA(0,portX, y));
        com.add(new ComandoPase(0,sj.getSiguienteJugador(0)));    
        
        for (int n=1;n<11;n++)
            com.add(new ComandoGolpearBola(n,163,0));
            

       
        int nJug=sj.getMasCercanoDeBola();
        if (nJug!=0)
        com.add(new ComandoIrA(nJug,bola.getX(), bola.getY()));
        
       
        
        for (int n=2;n<6;n++)
        { if (General.getDistancia(bola.getX(),bola.getY(),nValores[n][0],nValores[n][1])<95)
                com.add(new ComandoIrA(n, bola.getX() , bola.getY()));}
       
        if (General.getDistancia(bola.getX(),bola.getY(),nValores[1][0],nValores[1][1])<125)
                com.add(new ComandoIrA(1, bola.getX() , bola.getY()));
        
        for (int o=6;o<11;o++){
        if (General.getDistancia(bola.getX(),bola.getY(),nValores[o][0],nValores[o][1])<100)
                com.add(new ComandoIrA(o, bola.getX() , bola.getY()));}
               
    return com;
    }
    

}
